معرفی 10 آزمون برتر برای مهندسان نرم‌افزار
۱۴۰۰/۰۳/۰۶ تاریخ انتشار

آزمون رگرسیون

آزمون رگرسیون (Regression testing) راهکاری برای ارزیابی و آزمایش نرم‌افزار است که هدف از آن پیدا کردن اشکالات نرم‌افزاری جدید یا رگرسیون‌ها در بخش‌های مختلف نرم‌افزار و در ادامه اعمال تغییراتی نظیر بهینه‌سازی، تغییر در پیکربندی نرم‌افزار و ویرایش کدها است. مقصود از آزمون رگرسیون این است که اطمینان حاصل شود تغییرات جدید مانند تغییرات ذکر شده، باعث ایجاد نقص و خطای جدیدی در نرم‌افزار نمی‌شوند. یکی از اصلی‌ترین دلایل برای انجام آزمون رگرسیون این است که مشخص شود آیا ایجاد یک تغییر در یکی از قسمت‌های سیستم، دیگر قسمت‌های سیستم را هم تحت تأثیر قرار می‌دهد یا خیر. از جمله روش‌های معمول برای انجام آزمون رگرسیون این است که آزمایش‌هایی که قبل از اعمال کردن تغییرات جدید به‌خوبی و با موفقیت بر روی نرم‌افزار انجام می‌شدند، مجدداً پس از اعمال کردن تغییرات جدید هم بر روی نرم‌افزار اعمال شوند و بررسی شود که آیا رفتار برنامه پس از اعمال تغییرات جدید تغییر کرده و همینطور معلوم شود که آیا نواقص از قبل برطرف شده مجدداً پدیدار شده‌اند یا خیر.

آزمون پذیرش

در علوم مهندسی آزمون پذیرش یا مقبولیت (Acceptance testing) آزمونی است که مشخص می‌کنند آیا نیازمندی‌های از قبل مشخص شده یا نیازمندی‌های موجود در قرارداد برآورده شده‌‌اند یا خیر. آزمون پذیرش می‌تواند شامل آزمون‌های فیزیکی و آزمون عملکرد باشد.

مهندسی سامانه‌ها

در مهندسی سامانه‌ها (Systems Engineering) آزمون پذیرش می‌تواند پیش از ارائه، شامل آزمون جعبه سیاه باشد. در مبحث آزمون نرم‌افزار، ISTQB، پذیرش به این صورت تعریف تعریف می‌شود: «آزمون رسمی با توجه به نیازها، نیازمندی‌ها و فرایند تجاری انجام شده برای مشخص کردن این‌که آیا سامانه معیارهای پذیرش را برآورده می‌کند و کاربر، مشتری و سایر موجودیت‌ها، سامانه را می‌پذیرند یا خیر انجام می‌شود.» 

آزمایش جعبه سفید

تست جعبه سفید (White-box testing) مجموعه تست‌های نرم‌افزاری است که در آن بر خلاف تست جعبه سیاه به ریز عملکرد سامانه نرم‌افزاری و ساختار کد مبدأ آن توجه می‌شود. در تست جعبه سفید، بدون در نظر گرفتن خروجی مورد انتظار یا مشخصات از پیش تعیین‌شده، پیاده‌سازی‌های درون نرم‌افزار مورد توجه قرار می‌گیرند. هدف این نوع تست یافتن خطاهای ناخواسته نظیر حلقه‌های بی‌نهایت، مسیرهایی از کد که به سبب خطاهای منطقی کد هرگز اجرا نمی‌شوند و نظایر آن است. تکنیک‌های طراحی تست جعبه سفید، شامل معیارهای کد محور تست جریان کنترل، تست جریان داده، تست شاخه‌ای، تست مسیر اولیه و تست مسیر و تست‌های انتخاب محور هستند. 

رویه‌های اساسی تست‌های جعبه سفید نیاز به آزمایش کننده‌ای دارد که دانش عمیق از کد منبع مورد آزمایش داشته باشد. برنامه‌نویس باید درک عمیق از برنامه داشته باشد تا بداند چه موردهای آزمایشی ایجاد کند تا هر مسیر قابل مشاهده در برنامه به درستی تست شود. وقتی کد برنامه به خوبی فهمیده شود، موارد آزمون مناسب با تحلیل کد منبع انتخاب می‌شوند. در ادامه به سه مرحله پایه‌ای که تست جعبه سفید برای انتخاب موارد آزمون به ترتیب طی می‌کند اشاره شده است:

  • ورودی شامل انواع مختلفی از الزامات، مشخصات عملکرد، طراحی دقیق اسناد، کد منبع مناسب و مشخصات امنیتی است. این مرحله آماده سازی آزمایش‌ها سفید جعبه است تا همه اطلاعات اصلی را بیابد.
  • پردازش شامل انجام تجزیه و تحلیل ریسک برای هدایت کل فرایند تست، طرح تست مناسب، اجرای آزمون‌ها و برقراری ارتباط نتایج است. این فاز ساخت موارد آزمون است تا اطمینان حاصل شود که آن‌ها به‌طور کامل برنامه را آزمایش می‌کنند و نتایج داده شده بر اساس آن ثبت می‌شود.
  • خروجی شامل تهیه گزارش نهایی است که شامل تمام آماده‌سازی‌ها و نتایج فوق است. 

آزمون بلادرنگ

تست بلادرنگ به فرایند تست سیستم‌های کامپیوتری بلادرنگ گفته می‌شود. تست نرم‌افزار به منظور آگاهی و کمک به تصحیح خطاهای نرم‌افزارهای کامپیوتری انجام می‌شود. تست نه تنها عاری از خطا بودن نرم‌افزار بلکه عملکرد مناسب و لازم برای کاربر را نیز بررسی می‌کند روش‌های ایستا و مرسوم در تست می‌توانند خطاها را آشکار سازند اما چنین تکنیک‌هایی ممکن است نتیجه مطلوب در سیستم‌های بلادرنگ را نداشته باشد. سیستم‌های بلادرنگ محدودیت زمانی‌های بسیار سختگیرانه ای دارند این سیستم‌ها باید زمان‌بندی وظایف را بر اساس قیدهای زمانی اعمال کنند روش‌های مرسوم برای تحلیل چنین قیود زمانی مناسب نیستند بنابراین اهمیت تست بلادرنگ آشکار می‌شود. موارد آزمون برای طراحی تست بلادرنگ در ۴ گام تست وظیفه (در گام اول هر وظیفه به صورت تکی و با روش‌های مرسوم مورد ارزیابی قرار می‌گیرد این مدل تست تنها برای کشف کردن خطاها در منطق یا نحو برنامه استفاده می‌شود این مدل تست به قیود زمانی و خصوصیات زمانی اتفاقات ارتباطی ندارد.)، تست رفتاری (از مدل‌های طراحی شده به کمک ابزار تست خودکار بهره می‌گیرد و این امکان را می‌دهد تا رفتار سیستم بلادرنگ را شبیه‌سازی کند و تأثیر اتفاقات همزمان را مشاهده کرد.)،  تست تعاملی (زمانی که تست انفرادی به اتمام رسید انتظار می‌رود سیستم خالی از هرگونه خطا در کد و رفتار باشد حال محدودیت‌های مرتبط با زمان در این بخش مورد بررسی قرار می‌گیرد تا خطاهای در ارتباط آشکار و وظایف غیر همزمان با نرخ داده‌های متغیر و بارهای مختلف مورد تست قرار بگیرد.) و تست سیستمی (در این مدل تست نرم‌افزار و سخت‌افزار با هم ترکیب شده و انواع زیادی از آزمون‌ها انجام می‌شود تا خطاها در زمان ترکیب این دو نیز آشکار گردد.) خلاصه می‌شوند. 

همان‌گونه که تست سیستم‌های بلادرنگ اهمیت روزافزون پیدا می‌کند، ابزارهای نیز برای چنین تست‌های طراحی می‌شوند که از آن جمله باید به MSC (نمودار توالی پیام‌ها روش استاندارد بین‌المللی پذیرفته شده‌است که با استفاده از یک زبان گرافیکی دو بعدی نیازها را از طریق تعامل سناریوها جمع‌آوری می‌کند.)، SDL (استانداردی است که برای طراحی و تحلیل استفاده می‌شود و از مشخصه‌های سیستم‌های پیچیده حمایت می‌کند و در زمینه‌های بسیاری همچون ارتباطات و اتوماسیون تا توسعه معمولی نرم‌افزار کاربرد دارد.)، TTCN (تست و نشانه‌گذاری کنترل تست تنها زبان استاندارد شده و بین‌المللی تست است.) و TTCN3 (کاربرد وسیع‌تری را در مقایسه با نسخه‌های قبلی TTCN فراهم می‌کند که به‌طور خاص روی پروتکل‌های OSI تمرکز می‌کند.) اشاره کرد. 

آزمون A/B

آزمون (A/B testing) عنوان فرایندی است که برای تشخیص اینکه از میان دو ویژگی «آ» و «ب» کدام‌یک مناسب‌تر است به کار می‌رود. در آزمون‌های آ/ب، دو پیاده‌سازی متفاوت به صورت آزمایشی به دو گروه از کاربران ارائه می‌شود. مقایسه نتایج به‌دست‌آمده از گروه‌ها می‌تواند به انتخاب پیاده‌سازی مناسب‌تر کمک کند.

 آزمایش داده محور

آزمایش داده محور (Data-driven testing) یک روش آزمایش نرم‌افزار است که در تست نرم‌افزار رایانه‌ای برای توصیف آزمون‌های انجام شده با استفاده از یک جدول شرایط که مستقیماً به عنوان ورودی و خروجی‌های قابل تأیید به گونه ای که فرایند تنظیمات و کنترل محیط به صورت کدنویسی شده غیرپویا انجام نمی‌شود، استفاده می‌گردد. در ساده‌ترین شکل ممکن، آزمونگر ورودی‌ها را از یک ردیف در جدول داده‌های مورد نظر خود تأمین می‌کند و انتظار دارد که خروجی‌هایی که در همان ردیف وجود دارند، در زمان اجرای آزمایش مشاهده گردند. جدول داده‌های آزمون به‌طور معمول دارای مقادیر متناسب با فضاهای ورودی مرزی یا پارتیشن است. در روش کنترلی، اطلاعات پیکربندی آزمون از یک پایگاه داده واکشی می‌شود.

 آزمون واحد

آزمون واحد (unit testing) در برنامه‌نویسی رایانه‌ای، نوعی آزمون نرم‌افزار است که در آن «واحدهای منفرد کد منبع» مورد آزمون قرار می‌گیرند تا تعیین شود که آیا برای استفاده سازگار هستند یا نه. در اینجا «واحد منفرد کد منبع» یعنی مجموعه‌ای از یک یا بیشتر پودمان برنامه رایانه‌ای، همراه با داده کنترلی مرتبط، رویه استفاده، و رویه عملیاتی. آزمون‌های واحد معمولاً آزمون‌هایی خودکار هستند که توسط توسعه‌دهنده نرم‌افزار نوشته و اجرا می‌شوند، این آزمون برای آن انجام می‌شود تا اطمینان حاصل شود که بخشی از یک برنامه‌کاربردی (که «واحد» نام دارد) طراحی را برآورده کرده‌است و رفتارش هم براساس انتظار است. آزمون واحد روشی است برای آزمودن واحدهای کوچکی از کد منبع برنامه و اطمینان از درست کار کردن آن‌ها؛ در این روش، درستی هر قسمت از کد، که به آن «واحد» گفته می‌شود، با استفاده از کدهای دیگری که توسط برنامه‌نویس نوشته شده ارزیابی می‌گردد. در زبان‌های شیءگرا، معمولاً این کار با استفاده از یک کلاس مستقل انجام می‌شود، اگر چه می‌تواند تنها با استفاده از یک متد نیز صورت بپذیرد.

در حالت ایده‌آل هر کدام از آزمون‌ها از بقیه مستقل است. معمولاً آزمون‌های واحد توسط توسعه‌دهندگان نرم‌افزار به کار گرفته می‌شوند. نحوه آزمون واحد می‌تواند از ارزیابی نتیجه روی کاغذ، تا اجرای خودکار چندین آزمایش توسط برنامه و تحلیل نتیجه آن‌ها توسط خود برنامه، متغیر باشد.

به این مطلب چند ستاره می‌دهید؟(امتیاز: 4.9 - رای: 3)

ثبت نظر تعداد نظرات: 0 تعداد نظرات: 0
usersvg